home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / WACANVA2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  3.6 KB  |  164 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.image.ImageObserver;
  9.  
  10. class WaveCanvas2 extends Canvas implements Runnable {
  11.    Thread theThread;
  12.    double[] sinValues;
  13.    double angleIncrement;
  14.    int waveCount;
  15.    Image osImage;
  16.    Graphics osg;
  17.    int sineIndex;
  18.    Color bkColor;
  19.    Image bkImage;
  20.    Color waveColor;
  21.    int movementIncrement;
  22.    int sleepTime;
  23.    boolean moveWest;
  24.    boolean moveEast;
  25.  
  26.    public void update(Graphics var1) {
  27.       if (this.osImage == null) {
  28.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  29.          this.osg = this.osImage.getGraphics();
  30.       }
  31.  
  32.       this.osg.setColor(((Component)this).getBackground());
  33.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  34.       if (this.bkImage != null) {
  35.          int var2 = this.bkImage.getWidth(this);
  36.          int var3 = this.bkImage.getHeight(this);
  37.          int var4 = ((Component)this).size().width / var2;
  38.          int var5 = ((Component)this).size().height / var3;
  39.          ++var4;
  40.          ++var5;
  41.  
  42.          for(int var6 = 0; var6 < var5; ++var6) {
  43.             for(int var7 = 0; var7 < var4; ++var7) {
  44.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  45.             }
  46.          }
  47.       }
  48.  
  49.       this.osg.setColor(this.waveColor);
  50.       int var8 = 0;
  51.       int var9 = ((Component)this).size().height / 2 + (int)(this.sinValues[this.sineIndex] * (double)(((Component)this).size().height / 2));
  52.       int var11 = var9;
  53.       int var13 = 0;
  54.       int var14 = 0;
  55.       int var16 = this.sineIndex;
  56.  
  57.       while(var13 < ((Component)this).size().width) {
  58.          var13 = var8 + 1;
  59.          var14 = (int)(this.sinValues[var16] * (double)(((Component)this).size().height / 2) + (double)(((Component)this).size().height / 2));
  60.          this.osg.drawLine(var8, var11, var13, var14);
  61.          var8 = var13;
  62.          var11 = var14;
  63.          ++var16;
  64.          if (var16 >= this.sinValues.length) {
  65.             var16 = 0;
  66.          }
  67.       }
  68.  
  69.       var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
  70.    }
  71.  
  72.    public WaveCanvas2(Applet var1, int var2) {
  73.       this.GetParameters(var1, var2);
  74.    }
  75.  
  76.    void GetParameters(Applet var1, int var2) {
  77.       String var3 = var1.getParameter("waveBkColor" + var2);
  78.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  79.       if (this.bkColor != null) {
  80.          ((Component)this).setBackground(this.bkColor);
  81.       }
  82.  
  83.       var3 = var1.getParameter("waveBkImage" + var2);
  84.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  85.       var3 = var1.getParameter("waveColor" + var2);
  86.       this.waveColor = AppletParam2.GetColor(var3, Color.black);
  87.       var3 = var1.getParameter("waveIncrement" + var2);
  88.       this.movementIncrement = AppletParam2.GetInt(var3, 2);
  89.       var3 = var1.getParameter("waveCount" + var2);
  90.       this.waveCount = AppletParam2.GetInt(var3, 1);
  91.       var3 = var1.getParameter("waveSpeed" + var2);
  92.       this.sleepTime = AppletParam2.GetInt(var3, 125);
  93.       var3 = var1.getParameter("waveMoveDirection" + var2);
  94.       String var4 = AppletParam2.GetString(var3, "West");
  95.       if (var4.compareTo("West") == 0) {
  96.          this.moveWest = true;
  97.          this.moveEast = false;
  98.       } else {
  99.          this.moveWest = false;
  100.          this.moveEast = true;
  101.       }
  102.    }
  103.  
  104.    public void Start() {
  105.       this.theThread = new Thread(this);
  106.       this.theThread.start();
  107.    }
  108.  
  109.    public void Stop() {
  110.       this.theThread.stop();
  111.       this.theThread = null;
  112.    }
  113.  
  114.    public void run() {
  115.       try {
  116.          while(true) {
  117.             ((Component)this).repaint();
  118.             Thread.sleep((long)this.sleepTime);
  119.             if (this.moveWest) {
  120.                this.sineIndex += this.movementIncrement;
  121.                if (this.sineIndex >= this.sinValues.length) {
  122.                   this.sineIndex = 0;
  123.                }
  124.             } else {
  125.                this.sineIndex -= this.movementIncrement;
  126.                if (this.sineIndex <= 0) {
  127.                   this.sineIndex = this.sinValues.length - 1;
  128.                }
  129.             }
  130.          }
  131.       } catch (InterruptedException var1) {
  132.       }
  133.    }
  134.  
  135.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  136.       this.angleIncrement = (Math.PI * 2D) / ((double)var3 / (double)this.waveCount);
  137.       int var5 = var3 / this.waveCount;
  138.       this.sinValues = new double[var5];
  139.       double var6 = (double)0.0F;
  140.  
  141.       for(int var8 = 0; var8 < var5; ++var8) {
  142.          this.sinValues[var8] = Math.sin(var6);
  143.          var6 += this.angleIncrement;
  144.       }
  145.  
  146.       this.osImage = null;
  147.       if (this.moveWest) {
  148.          this.sineIndex = 0;
  149.       } else {
  150.          this.sineIndex = this.sinValues.length - 1;
  151.       }
  152.  
  153.       super.reshape(var1, var2, var3, var4);
  154.    }
  155.  
  156.    public Dimension minimumSize() {
  157.       return new Dimension(10, 10);
  158.    }
  159.  
  160.    public Dimension preferredSize() {
  161.       return new Dimension(10, 10);
  162.    }
  163. }
  164.